

https://leetcode.cn/problems/N6YdxV/description/
//class Solution {
//public:
//    int searchInsert(vector<int>& nums, int target) {
//
//        int n = nums.size();
//        int l = 0, r = n - 1;
//        while (l < r) {
//            int mid = l + (r - l) / 2;
//            if (nums[mid] < target) {
//                l = mid + 1;
//            }
//            else {
//                r = mid;
//            }
//        }
//        if (nums[l] < target) return l + 1;
//        return l;
//    }
//};


https://leetcode.cn/problems/jJ0w9p/description/
//class Solution {
//public:
//    int mySqrt(int x) {
//
//        if (x < 1) {
//            return 0;
//        }
//
//        int l = 1, r = x;
//        while (l < r) {
//            long long mid = l + (r - l + 1) / 2;
//            if (mid * mid <= x) {
//                l = mid;
//            }
//            else {
//                r = mid - 1;
//            }
//        }
//        return l;
//    }
//};

https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/description/
//class Solution {
//public:
//    vector<int> searchRange(vector<int>& nums, int target) {
//
//        int n = nums.size();
//
//        if (n == 0) {
//            return { -1,-1 };
//        }
//
//        int l = 0, r = n - 1;
//        int begin = -1;
//
//        while (l < r) {
//            int mid = l + (r - l) / 2;
//            if (nums[mid] < target) l = mid + 1;
//            else r = mid;
//        }
//
//        if (nums[l] != target) {
//            return { -1,-1 };
//        }
//        else begin = l;
//
//        l = 0, r = n - 1;
//        int end = -1;
//
//        while (l < r) {
//            int mid = l + (r - l + 1) / 2;
//            if (nums[mid] <= target) l = mid;
//            else r = mid - 1;
//        }
//
//        if (nums[l] != target) {
//            return { -1,-1 };
//        }
//        else end = l;
//
//        return { begin,end };
//    }
//};